Start sketching in some incomplete D304 send support.
authorrobertl <robertl>
Tue, 13 Feb 2007 19:01:44 +0000 (19:01 +0000)
committerrobertl <robertl>
Tue, 13 Feb 2007 19:01:44 +0000 (19:01 +0000)
jeeps/gpsapp.c
jeeps/gpsapp.h

index 05aac8417981162113971f19e13afef1d9137a10..c9f14fdedb7d9e42ec41f0b23607fb7853939d4c 100644 (file)
@@ -3796,6 +3796,10 @@ int32 GPS_A301_Send(const char *port, GPS_PTrack *trk, int32 n)
                GPS_D301_Send(data,trk[i]);
                len = 21;
                break;
+           case pD304:
+               GPS_D304_Send(data,trk[i]);
+               len = 26;
+               break;
            default:
                GPS_Error("A301_Send: Unknown track protocol");
                return PROTOCOL_ERROR;
@@ -4195,6 +4199,36 @@ void GPS_D301_Send(UC *data, GPS_PTrack trk)
     return;
 }
 
+void GPS_D304_Send(UC *data, GPS_PTrack trk)
+{
+    UC *p;
+
+    p = data;
+    GPS_A300_Encode(p,trk);
+    p = data+12;
+    
+    GPS_Util_Put_Float(p,trk->alt);
+    p+=sizeof(float);
+    GPS_Util_Put_Float(p,1.0e25);
+    p+=sizeof(float);
+
+    /* Not really clear if the members below makes sense to write or not */
+
+    *p = trk->heartrate;
+    p+=sizeof(char);
+
+    *p = trk->cadence;
+    p+=sizeof(char);
+
+    *p = trk->cadence > 0 ? trk->cadence : 0xff;
+    p+=sizeof(char);
+
+    *p = trk->tnew;
+
+    return;
+}
+
 
 
 /* @func GPS_D310_Send **************************************************
index 2d9ead9c1172112dc01702e9a86db449fa5f3e27..ee64168475ea5949fe44224d80d586eb14a439bd 100644 (file)
@@ -34,6 +34,7 @@ void   GPS_D310_Get(GPS_PTrack *trk, UC *s);
 void   GPS_D311_Get(GPS_PTrack *trk, UC *s);
 void   GPS_D300_Send(UC *data, GPS_PTrack trk);
 void   GPS_D301_Send(UC *data, GPS_PTrack trk);
+void   GPS_D304_Send(UC *data, GPS_PTrack trk);
 void   GPS_D310_Send(UC *data, GPS_PTrack trk, int32 *len);
 
 int32  GPS_A400_Get(const char *port, GPS_PWay **way);